#Python 入门代码：
# 1.python要求格式正确：一般计算机语言的都有"{}"等符号，而python是由tab进行语句分割
# print("你好 world")

# ____________________________________________________________

# if True:
#     print("True")
#   print("sss")
# else:
#     print("False")

# ____________________________________________________________
"""
days = ['Monday','Tuesday','Wedensday','Thursday','Friday']
word = 'word'
sentence = '这是一个句子'
# paragraph =
"""

# ____________________________________________________________

# 空行也是程序代码的一部分。

# ____________________________________________________________

# raw_input("dfassdf\n")

# ____________________________________________________________

# import sys ;x = 'runoob' ; sys.stdout.write( x + '\n')

# ____________________________________________________________
"""
x = 'a'
y = 'b'
#换行输出

print(x)          #a
print(y)          #b

print('----------------')

#不换行输出
print(x),print(y) #a
                  #b

#不换行输出
print(x,y)        # a b

"""

# ____________________________________________________________
"""
counter = 100  # 赋值整形变量
miles = 1000.0  # 浮点型
name = "John"  # 字符串

print(counter)
print(miles)
print(name)
"""
# ____________________________________________________________
"""
a,b ,c = 1,12,"John"
print(a,b,c)
"""
# ____________________________________________________________
# Python有五个标准的数据类型：
#
# Numbers（数字）
# String（字符串）
# List（列表）
# Tuple（元组）
# Dictionary（字典）
# ____________________________________________________________

# Numbers（数字）:

# int（有符号整型）(long在python3中移除)
# float（浮点型）
# complex（复数）
"""
var1 = 1
var2 = 10
"""
# ____________________________________________________________

# String（字符串）:字符串或串(String)是由数字、字母、下划线组成的一串字符。

# python的字串列表有2种取值顺序:
#
# 从左到右索引默认0开始的，最大范围是字符串长度少1
# 从右到左索引默认-1开始的，最大范围是字符串开头
#
#     P  Y  T  H  O  N
#     0  1  2  3  4  5
#    -6 -5 -4 -3 -2 -1

# 从字符串中获取一段子字符串
"""
s = "python"

a = s[1:3]

print(a) # yt

str = 'Hello World!'

print(str)
print(str[0])
print(str[2:5])
print(str[2:])
print(str * 2)
print(str + "TEST")
"""
# ____________________________________________________________

# Python列表
#    [ P, Y, T, H, O, N ]
#      0  1  2  3  4  5
#     -6 -5 -4 -3 -2 -1
"""
list = ['python',123,2.333,'pan',33]
tinyList = [123,'pan']

print(list)                   #['python', 123, 2.333, 'pan', 33]
print(list[0])                #python
print(list[1:3])              #[123, 2.333]
print(list[2:])               #[2.333, 'pan', 33]
print(tinyList * 2)           #[123, 'pan', 123, 'pan']
print(list + tinyList)        #['python', 123, 2.333, 'pan', 33, 123, 'pan']
"""
# ____________________________________________________________

# Python元组 :类似于List（列表）,元组不能二次赋值，相当于只读列表

"""
tuple = ('python',123,2.333,'pan',33)
a = 'pan'
tinytuple = (123,a)

print(tuple)
print(tuple[0])
print(tuple[1:3])
print(tuple[2:])
print(tinytuple * 2)
print(tuple + tinytuple)
#*******注意 ：此处不是二次赋值，是改变引用操作，打印出的元素会改变
tuple = ('s',1) 
print(tuple)                    #('s', 1)
#*******注意 : 此处打印数值不改变
print(tinytuple)                #(123, 'pan')
a = 'aaa'
print(tinytuple)                #(123, 'pan')
#不能二次赋值，指的是不能更换其中变量的值，而改变元祖中的引用是不影响最终结果的
"""

# ____________________________________________________________

# Python 字典：类似于List（列表），字典是无序的对象集合，通过键来存取

"""
dict = {}
dict['one'] = "This is one"
dict[2] = "这个是 兔O(∩_∩)O"

tinydict = {'name':'python','number':123,'floatNum':2.333}

print(dict)                     #{'one': 'This is one', 2: '这个是 兔O(∩_∩)O'}
print(dict['one'])              #This is one
print(dict[2])                  #这个是 兔O(∩_∩)O
print(tinydict)                 #{'name': 'python', 'number': 123, 'floatNum': 2.333}
print(tinydict.keys())       #输出所有键值 #dict_keys(['name', 'number', 'floatNum'])
print(tinydict.values())        #dict_values(['python', 123, 2.333])

print(tinydict.get('name'))     #python

"""
# ____________________________________________________________

# 强制转换

"""
a = 1
b = 2.0
print(int(b))

print(float(1))

print( str(1) + "python")

s = "python"
print(repr(s))                  #repr(x)返回x对象的string格式
dict = {'python','java','c#'}   #'python'
print(repr(dict))               #{'java', 'python', 'c#'}

x = 7
y = eval('3 * x')               #eval() 函数用来执行一个字符串表达式，并返回表达式的值
print(y)

# tuple()函数

print( tuple([1,3,2,3,4]))      #数组转换的元祖仍为原数组

print(tuple({1:234,2:2344}))    #字典转换的元祖为key组成的tuple

print(tuple((1,2,3,6,32,12)) )  #元组转换的元组仍为元元组

"""
"""
print(list((1,3,2,5,2,3)))      #元组转换为列表

frozenset([0,1,2,3,4,5])        #创建不可变集合

"""
str = 'Python'
# 跟着写一遍即可，只要先掌握 + 为连接字符串即可，其他语句后续在变量类型中会讲
print(str)  # 输出字符串
print(str[0:-1])  # 输出第一个~倒数第二个的所有字符
print(str[0])  # 输出字符串第一个字符
print(str[2:5])  # 输出从第三个开始到第五个的字符
print(str[2:])  # 输出从第三个开始的后的所有字符
print(str * 2)  # 输出字符串两次
print(str + '你好')  # 连接字符串

print('------------------------------')

print('hello\nPython')  # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nPython')  # 在字符串前面添加一个 r，表示原始字符串，不会发生转义
